home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / Games / xblockbuster / save.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-05-03  |  1.6 KB  |  72 lines

  1. /*
  2.  * File:       save.c
  3.  * Author:     Eric Van Gestel
  4.  *
  5.  * For:                xblockbuster
  6.  * Updated for X11 by Mark S. Wedel
  7.  *
  8.  */
  9.  
  10. #include "xblockbuster.h"
  11.  
  12. void
  13. start_up(  )
  14. {
  15.     FILE           *fd;
  16.     char            sve[SAVEFILE_LENGTH];
  17.     register int    stage_nb_tmp;
  18.  
  19.     sprintf( sve, SAVEFILE, playground, login );
  20.     if ((fd = fopen( sve, "r+" ))) {
  21.         /* restoring save file */
  22.         XDrawImageString(display, win, gc, OFFSET_BALLS,
  23.             font_height, "Restoring...",12);
  24.  
  25.         fscanf( fd, "%d:%d::%d:%d::%d:%lf\n",
  26.             &score, &balls_left,
  27.             &nb_stages, &stage_nb,
  28.             &pallet_modif, &launch_speed );
  29.         for ( stage_nb_tmp = 0; stage_nb_tmp < MAX_NB_STAGES; )
  30.             fscanf( fd, "%1d", &stages[stage_nb_tmp++] );
  31.         fclose( fd );
  32.         /* remove save file */
  33.         unlink( sve );
  34.         /* restart stage chosen when saved */
  35.         get_stage(  );
  36.     } else {
  37.         /* no save file */
  38.         score = 0;
  39.         balls_left = INIT_BALLS;
  40.         pallet_modif = 0;
  41.         launch_speed = INIT_SPEED;
  42.         nb_stages = 0;
  43.         for ( stage_nb_tmp = 0; stage_nb_tmp < MAX_NB_STAGES; )
  44.             stages[stage_nb_tmp++] = FALSE;
  45.         /* start some stage */
  46.         new_stage(  );
  47.     }
  48. }
  49.  
  50. void
  51. save(  )
  52. {
  53.     FILE           *fp;
  54.     char            sve[SAVEFILE_LENGTH];
  55.     register int    stage_nb_tmp = 0;
  56.  
  57.     sprintf( sve, SAVEFILE, playground, login );
  58.     if ( !( fp = fopen( sve , "w" ) ) ) {
  59.         perror( "Can't open save file" );
  60.         exit( 1 );
  61.     }
  62.     fprintf( fp, "%d:%d::%d:%d::%d:%f\n",
  63.          score, balls_left,
  64.          nb_stages, stage_nb,
  65.          pallet_modif, launch_speed );
  66.     for ( stage_nb_tmp = 0; stage_nb_tmp < MAX_NB_STAGES; )
  67.         fprintf( fp, "%1d", stages[stage_nb_tmp++] );
  68.     fclose( fp );
  69.  
  70.     show_score_board(  );    /* BYE !! */
  71. }
  72.